Національний університет “Львівська політехніка”
РОЗРАХУНКОВА РОБОТА
З ПРЕДМЕТУ
ТЕОРІЯ ЕЛЕКТРИЧНИХ КІЛ
«Апроксимація функцій та розрахунок перехідних процесів у нелінійних електричних колах»
Задача
Дано:
Математична модель
Будуємо дискретну модель за явним методом Ейлера:
Алгоритм явного методу Ейлера:
t=0;
Задаємося початковими значеннями
Обчислюємо статичну індуктивність
Обчислюємо струм
Записуємо значення
Перевіряємо умову чи час t досяг свого кінцевого значення tEND. Якщо так то виходимо з алгоритму якщо ні то йдемо далі.
Обчислюємо значення потокозчеплення згідно із явною формулою Ейлера на наступному кроці :
Змінюємо крок
Йдем на пункт 3.
Апроксимація кривої намагнічування методом вибраних точок
Нам дана характеристика намагнічування сталі 1413
№
1
2
3
4
5
6
7
8
9
10
11
12
В, Тл
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
Н, А/м
44
56
67
77
90
109
133
166
217
298
444
722
№
13
14
15
16
17
18
19
20
21
22
23
В, Тл
1.4
1.5
1.6
1.7
1.8
1.9
2.0
2.1
2.2
2.3
2.4
Н, А/м
1410
3140
5980
10
100
18
100
33
500
88
300
167
000
246
000
326
000
405
000
Нашим рядом апроксимації являється вираз:
Рівняннями прямих будуть: і
Запишемо систему рівнянь:
де вибрані точки будуть в: В1=0.6; В2=1,1; В3=1,6, відповідно.
Обрахуємо коефіцієнти при прямих:
Тепер знайдемо коефіцієнти а4, а5, а6:
розв’язавши цю систему ми отримаємо:
Остаточне рівняння:
Апроксимація здійснена по підкреслених у таблиці точках
Графічно вона виглядає так:
Перераховуємо криву намагнечення у вебер-амперну характеристику :
Після підстановки отримуємо :
Виконаємо спрощення :
Розраховуємо обернену статичну індуктивність дроселя :
Аналіз перехідних процесів з розв’язанням диференціальних рівнянь явними методом Ейлера.
Текст програми написаний мовою Сі++ :
HEADER_FILE-------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
//Початок.Задані величини----------------------------------------------------
double R,F,f,Umax,l,W,h,T,S;
//Кінець.Задані величини-----------------------------------------------------
//Початок.Змінні інтегрування------------------------------------------------
double psi,i,t,a;
//Кінець.Змінні інтегрування-------------------------------------------------
//Початок.Додаткові величини-------------------------------------------------
double psi1,psi3;
double F1,F2,F3,F4,F5,F6;
double a1,a2,a3,a4,a5,a6;
//Кінець.Додаткові величини--------------------------------------------------
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
CPP_FILE--------------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <Math.h>
#include <vcl.h>
#pragma hdrstop
#include <fstream.h>
#include <iostream.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
using namespace std;
fopen("D:\TEK_psi_i_t.dat","w+");
fs...